#include <header.h>

// 考虑: 给我一个目录, 我告诉你这个目录下有几个文件夹
int getFileSize(char *path){

    DIR *pDir = opendir(path);
    int  size = 0;

    while(1){
        
        struct dirent *pDirent = readdir(pDir);
        if(pDirent == NULL){
            return size;
        }

        if((pDirent->d_type == DT_REG) && strcmp(pDirent->d_name, "1.txt") ==0){
                
            // 获取文件大小
            // 需要一个代表当前1.txt的路径
            char buf[300] = {0};
            sprintf(buf, "%s/%s", path, pDirent->d_name);
            struct stat st;
            stat(buf,  &st);

            size += st.st_size;

        }

        if(pDirent->d_type == DT_DIR &&
           (strcmp(pDirent->d_name, ".") != 0 )
           && (strcmp(pDirent->d_name, "..") != 0)){
            // 走到这, 说明是个目录
            
            //路径拼接
            char buf[300] = {0};
            sprintf(buf, "%s/%s", path, pDirent->d_name);
            printf("newPath: %s \n", buf);
            int sonSize = getFileSize(buf);

            size += sonSize;
        }

    }
}


int main(){

    int num = getFileSize("./test");
    printf("num: %d \n", num);

    return 0;
}

